package com.atguigu.inner.local;

public class TestOuter {
    public static void main(String[] args) {
        Object obj = show();//多态引用，左边是父类Object类型，右边是Inner
        //上面的语句结束了之后，show()出栈了，show()的a不在栈里面
        System.out.println(obj.toString());//编译看左边Object，运行看子类Inner的toString
    }

    public static Object show(){
        int a = 1;//a是show()的局部变量。它的生命周期：从调用show开始，到show结束
        class Inner{
            public String toString(){
                return "a = " + a;//在Inner类的内部，自动添加了一个 成员变量是a，初始化为此时外部方法局部变量a的值
            }
        }
//        a = 2;
        Inner in = new Inner();
        return in;
    }
}
